Java Technologies Hibernate এর মাধ্যমে Data Insert (Create) গাইড ও নোট

302

Hibernate দিয়ে Data Insert (Create) অপারেশন বাস্তবায়ন করা খুবই সহজ এবং কার্যকরী। Hibernate ORM (Object-Relational Mapping) ফ্রেমওয়ার্কের মাধ্যমে আপনি ডাটাবেসে ডেটা ইনসার্ট করতে পারবেন এবং এটি ক্লাস এবং টেবিলের মধ্যে সম্পর্ক তৈরি করবে।

নিচে Hibernate ব্যবহার করে Data Insert (Create) করার জন্য প্রয়োজনীয় ধাপগুলো ব্যাখ্যা করা হয়েছে:


Step 1: Hibernate Configuration ফাইল তৈরি করা (hibernate.cfg.xml)

Hibernate এর কনফিগারেশন ফাইলটি ডাটাবেসের সংযোগ তথ্য, ডায়ালেক্ট, ডাটাবেসের ইউজারনেম এবং পাসওয়ার্ড, হাইবারনেটের সেটিংস ইত্যাদি ধারণ করে।

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>

    <session-factory>
        <!-- JDBC Database connection settings -->
        <property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
        <property name="hibernate.connection.driver_class">org.h2.Driver</property>
        <property name="hibernate.connection.url">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.connection.password"></property>

        <!-- JDBC connection pool settings -->
        <property name="hibernate.c3p0.min_size">5</property>
        <property name="hibernate.c3p0.max_size">20</property>

        <!-- Specify the dialect -->
        <property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="hibernate.current_session_context_class">thread</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="hibernate.show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- Mention annotated class -->
        <mapping class="com.example.hibernate.MyEntity"/>
    </session-factory>

</hibernate-configuration>

এখানে, hibernate.cfg.xml ফাইলে ডাটাবেস কনফিগারেশন সহ Hibernate এর অন্যান্য প্রপার্টি উল্লেখ করা হয়েছে। এখানে <mapping class="com.example.hibernate.MyEntity"/> দ্বারা MyEntity ক্লাসকে টেবিলের সাথে সম্পর্কিত করা হয়েছে।


Step 2: Entity Class তৈরি করা

Hibernate Entity ক্লাসে, @Entity অ্যানোটেশন ব্যবহার করা হয়, যা Hibernate কে জানায় যে এটি একটি জাভা ক্লাস যা একটি ডাটাবেস টেবিলের সাথে সম্পর্কিত।

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;

@Entity
public class MyEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)  // Auto increment ID
    private int id;
    
    private String name;
    
    // Getters and Setters
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

এখানে:

  • @Entity: এই অ্যানোটেশনটি নির্দেশ করে যে MyEntity একটি JPA Entity
  • @Id: এটি টেবিলের প্রাইমারি কী ফিল্ড নির্দেশ করে।
  • @GeneratedValue: এটি প্রাইমারি কী ফিল্ডের জন্য স্বয়ংক্রিয়ভাবে ভ্যালু তৈরি করতে ব্যবহৃত হয়।

Step 3: Hibernate ব্যবহার করে Data Insert (Create) করা

এখন আমরা Session এবং Transaction ব্যবহার করে ডাটাবেসে ডেটা ইনসার্ট করবো। SessionFactory ব্যবহার করে Session তৈরি করা হয়, এবং একটি Transaction চালু করে ডেটা ইনসার্ট করা হয়।

MyDAO Class (Data Insert করার জন্য):

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

public class MyDAO {

    private SessionFactory sessionFactory;

    public MyDAO(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    public void saveEntity(MyEntity entity) {
        // Session তৈরি করা
        Session session = sessionFactory.getCurrentSession();
        
        // Transaction শুরু করা
        Transaction transaction = session.beginTransaction();

        try {
            // Entity সেভ করা
            session.save(entity);

            // Transaction কমিট করা
            transaction.commit();
            System.out.println("Entity saved successfully");
        } catch (Exception e) {
            // Exception হলে Rollback করা
            if (transaction != null) {
                transaction.rollback();
            }
            e.printStackTrace();
        }
    }
}

এখানে:

  • session.save(entity) দিয়ে MyEntity অবজেক্টটি ডাটাবেসে সেভ করা হচ্ছে।
  • Transaction ব্যবহারের মাধ্যমে ডাটাবেস অপারেশনগুলি অ্যাটমিকভাবে পরিচালিত হয়। সফল হলে commit() এবং কোনো ত্রুটি ঘটলে rollback() করা হয়।

Step 4: Main Application

এখন, Guice বা সাধারণভাবে Hibernate ব্যবহার করে SessionFactory তৈরি করা এবং MyDAO ব্যবহার করে ডেটা ইনসার্ট করা হবে।

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class MainApp {

    public static void main(String[] args) {
        // SessionFactory তৈরি করা
        SessionFactory sessionFactory = new Configuration().configure().addAnnotatedClass(MyEntity.class).buildSessionFactory();

        // MyDAO ক্লাস ইনস্ট্যান্স তৈরি করা
        MyDAO dao = new MyDAO(sessionFactory);

        // MyEntity অবজেক্ট তৈরি করা এবং সেভ করা
        MyEntity entity = new MyEntity();
        entity.setName("John Doe");

        // ডেটা সেভ করা
        dao.saveEntity(entity);

        // SessionFactory বন্ধ করা
        sessionFactory.close();
    }
}

এখানে, MyEntity অবজেক্টের name প্রপার্টি ইনপুট দেওয়া হয়েছে এবং তা MyDAO ক্লাসের saveEntity() মেথডের মাধ্যমে ডাটাবেসে সেভ করা হয়েছে।


Output:

যদি আপনার hibernate.cfg.xml কনফিগারেশন ফাইলটি ঠিকভাবে কনফিগার করা থাকে, তাহলে Hibernate কনসোলের আউটপুট হিসেবে SQL স্টেটমেন্ট দেখাবে এবং টেবিলের মধ্যে ডেটা ইনসার্ট হবে:

Hibernate: insert into MY_ENTITY (NAME) values (?)
Entity saved successfully

Hibernate ব্যবহার করে Data Insert (Create) অপারেশন করা খুবই সহজ। উপরের স্টেপগুলিতে:

  1. Hibernate Configuration সেটআপ করা।
  2. JPA Annotations ব্যবহার করে Entity Class তৈরি করা।
  3. Session এবং Transaction ব্যবহার করে ডাটাবেসে ডেটা ইনসার্ট করা।

Hibernate ORM ডাটাবেসের সাথে জাভা অবজেক্টগুলির সম্পর্ক সহজে তৈরি করে এবং CRUD (Create, Read, Update, Delete) অপারেশন করতে সহায়ক হয়।

Content added By
Promotion

Are you sure to start over?

Loading...